package cn.tedu.oop;
/**本类用于测试构造方法*/
public class TestConstructor {
    public static void main(String[] args) {
        /**每次创建对象时，都会自动触发对应的构造方法来创建对象*/
        People p=new People();
        People p2=new People();
        People p3=new People(2);
        People p4=new People("张大喵",25,"男人");
        System.out.println(p4.name);
        System.out.println(p4.age);
        System.out.println(p4.gender);
        p.eat();
    }
}
class  People{
    String name;
    int age;
    String gender;
    public  People(String name,int peopleAge,String peopleGender){
        System.out.println("我是People类的全参构造");
        this.name=name;//等号右边局部变量的值赋值给左边成员变量
        age=peopleAge;
       gender= peopleGender;
    }
    /**1.每个类中默认存在无参构造（没有参数的构造方法）
     * 构造方法的格式：修饰符 类名（参数列表）{方法体}*/
    public People(){
        System.out.println("我是People类的无参构造");
    }
    /**如果提供了含参构造，默认的无参构造会被覆盖
     * 如果想要继续使用无参构造，就必须要手动提供无参构造*/
    public People(int n){
        System.out.println("我是People类的含参构造"+n);
    }
    /**方法的重载：在同一个类中，存在多个方法名相同，参数列表不同的方法
     * 构造方法也存在重载的现象
     * 3.构造方法也存在重载的现象：无参构造/含参构造/全参构造*/
    public void eat(){
        System.out.println("人是铁，饭是钢~");
    }
}